package com.vf.user.mapper;

import java.util.List;

import com.vf.user.domain.DTO.GroupTypeDTO;
import com.vf.user.domain.DTO.JoinGroupTypeDTO;
import com.vf.user.domain.GroupType;
import com.vf.user.domain.GroupUser;
import com.vf.user.domain.VO.GroupTypeVO;

/**
 * 分组类型Mapper接口
 * 
 * @author LBS
 * @date 2025-06-05
 */
public interface GroupTypeMapper 
{
    /**
     * 查询分组类型
     * 
     * @param id 分组类型主键
     * @return 分组类型
     */
    public GroupType selectGroupTypeById(Long id);

    /**
     * 查询分组类型列表
     * 
     * @param groupType 分组类型
     * @return 分组类型集合
     */
    public List<GroupType> selectGroupTypeList(GroupType groupType);

    /**
     * 新增分组类型
     * 
     * @param groupType 分组类型
     * @return 结果
     */
    public int insertGroupType(GroupType groupType);

    /**
     * 修改分组类型
     * 
     * @param groupType 分组类型
     * @return 结果
     */
    public int updateGroupType(GroupType groupType);

    /**
     * 删除分组类型
     * 
     * @param id 分组类型主键
     * @return 结果
     */
    public int deleteGroupTypeById(Long id);

    /**
     * 批量删除分组类型
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGroupTypeByIds(Long[] ids);

    List<GroupTypeDTO> selectGroupList();

    List<GroupTypeVO> getGroupDetail(Long id);

    int joinGroup(JoinGroupTypeDTO joinGroupTypeDTO);

    GroupUser findGroup(JoinGroupTypeDTO joinGroupTypeDTO);
}
